#include<stdio.h>

#include<ctype.h>
#include<conio.h>
#include<time.h>

#include"fonctions.h"
#include"graphique.h"
#include"structure_case.h"
#include "profil.h"

int menu_principal()
{
    char touche_tapee=0, position_courante=0;

   move_cursor(29, 35);
   color_console(14, 0);

   printf("%c J o u e r", 16);
   color_console(7, 0);

   move_cursor(29, 37);
   printf("  R e g l e s");

   move_cursor(29, 39);
   printf("  S i n s c r i r e");

   move_cursor(29, 41);
   printf("  L i s t e  d e s  j o u e u r s  i n s c r i t s");

   move_cursor(29, 43);
   printf("  M e i l l e u r s  s c o r e s");

   move_cursor(29, 45);
   printf("  A  p r o p o s");

   move_cursor(29, 47);
   printf("  Q u i t t e r");

   move_cursor(29, 35);
   do{
       touche_tapee=getch();
       position_courante=cursor_y();
       if(touche_tapee==13)
       {
           return position_courante;
       }
       else
       {
           switch(position_courante)
           {
               case 35 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 35);
                           color_console(7, 0);
                           printf("  J o u e r");
                           move_cursor(29, 37);
                           color_console(14, 0);
                           printf("%c R e g l e s", 16);
                           color_console(7, 0);
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 35);
                           color_console(7, 0);
                           printf("  J o u e r");
                           move_cursor(29, 47);
                           color_console(14, 0);
                           printf("%c Q u i t t e r", 16);
                           color_console(7, 0);
                       }
                   }
                   break;
               }
               case 37 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 37);
                           color_console(7, 0);
                           printf("  R e g l e s");
                           move_cursor(29, 39);
                           color_console(14, 0);
                           printf("%c S i n s c r i r e", 16);
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 37);
                           color_console(7, 0);
                           printf("  R e g l e s");
                           move_cursor(29, 35);
                           color_console(14, 0);
                           printf("%c J o u e r", 16);
                       }
                   }
                   break;
               }

               case 39 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 39);
                           color_console(7, 0);
                           printf("  S i n s c r i r e");
                           move_cursor(29, 41);
                           color_console(14, 0);
                           printf("%c L i s t e  d e s  j o u e u r s  i n s c r i t s", 16);
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 39);
                           color_console(7, 0);
                           printf("  S i n s c r i r e");
                           move_cursor(29, 37);
                           color_console(14, 0);
                           printf("%c R e g l e s", 16);
                       }
                   }
                   break;
               }

               case 41 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 41);
                           color_console(7, 0);
                           printf("  L i s t e  d e s  j o u e u r s  i n s c r i t s");
                           move_cursor(29, 43);
                           color_console(14, 0);
                           printf("%c M e i l l e u r s  s c o r e s", 16);
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 41);
                           color_console(7, 0);
                           printf("  L i s t e  d e s  j o u e u r s  i n s c r i t s");
                           move_cursor(29, 39);
                           color_console(14, 0);
                           printf("%c S i n s c r i r e", 16);
                       }
                   }
                   break;
               }

               case 43 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 43);
                           color_console(7, 0);
                           printf("  M e i l l e u r s  s c o r e s");
                           move_cursor(29, 45);
                           color_console(14, 0);
                           printf("%c A  p r o p o s", 16);
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 43);
                           color_console(7, 0);
                           printf("  M e i l l e u r s  s c o r e s");
                           move_cursor(29, 41);
                           color_console(14, 0);
                           printf("%c L i s t e  d e s  j o u e u r s  i n s c r i t s", 16);

                       }
                   }
                   break;
               }
               case 45 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 45);
                           color_console(7, 0);
                           printf("  A  p r o p o s");
                           move_cursor(29, 47);
                           color_console(14, 0);
                           printf("%c Q u i t t e r", 16);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 45);
                           color_console(7, 0);
                           printf("  A  p r o p o s");
                           move_cursor(29, 43);
                           color_console(14, 0);
                           printf("%c M e i l l e u r s  s c o r e s", 16);

                       }
                   }
                   break;
               }
               default :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 47);
                           color_console(7, 0);
                           printf("  Q u i t t e r");
                           move_cursor(29, 35);
                           color_console(14, 0);
                           printf("%c J o u e r", 16);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 47);
                           color_console(7, 0);
                           printf("  Q u i t t e r");
                           move_cursor(29, 45);
                           color_console(14, 0);
                           printf("%c A  p r o p o s",16);

                       }
                   }
               }
           }
       }
   }while(1);

}

int menu_jouer()
{
    char touche_tapee=0, position_courante=0;

   move_cursor(29, 35);
   color_console(14, 0);

   printf("%c C h o i s i r  l e  n i v e a u", 16);
   color_console(7, 0);

   move_cursor(29, 37);
   printf("  C h a r g e r  u n e  p a r t i e");

   move_cursor(29, 39);
   printf("  R e t o u r  a u  m e n u  p r i n c i p a l");

   move_cursor(29, 35);
   do{
       touche_tapee=getch();
       position_courante=cursor_y();
       if(touche_tapee==13)
       {
           return position_courante;
       }
       else
       {
           switch(position_courante)
           {
               case 35 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 35);
                           color_console(7, 0);
                           printf("  C h o i s i r  l e  n i v e a u");
                           move_cursor(29, 37);
                           color_console(14, 0);
                           printf("%c C h a r g e r  u n e  p a r t i e", 16);
                           color_console(7, 0);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 35);
                           color_console(7, 0);
                           printf("  C h o i s i r  l e  n i v e a u");
                           move_cursor(29, 39);
                           color_console(14, 0);
                           printf("%c R e t o u r  a u  m e n u  p r i n c i p a l", 16);
                           color_console(7, 0);
                       }
                   }
                   break;
               }
               case 37 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 37);
                           color_console(7, 0);
                           printf("  C h a r g e r  u n e  p a r t i e");
                           move_cursor(29, 39);
                           color_console(14, 0);
                           printf("%c R e t o u r  a u  m e n u  p r i n c i p a l", 16);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 37);
                           color_console(7, 0);
                           printf("  C h a r g e r  u n e  p a r t i e");
                           move_cursor(29, 35);
                           color_console(14, 0);
                           printf("%c C h o i s i r  l e  n i v e a u", 16);

                       }
                   }
                   break;
               }
               default :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 39);
                           color_console(7, 0);
                           printf("  R e t o u r  a u  m e n u  p r i n c i p a l");
                           move_cursor(29, 35);
                           color_console(14, 0);
                           printf("%c C h o i s i r  l e  n i v e a u", 16);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 39);
                           color_console(7, 0);
                           printf("  R e t o u r  a u  m e n u  p r i n c i p a l");
                           move_cursor(29, 37);
                           color_console(14, 0);
                           printf("%c C h a r g e r  u n e  p a r t i e", 16);

                       }
                   }
                   break;
               }

           }
       }
   }while(1);

}

int menu_niveau()
{
    char touche_tapee=0, position_courante=0;

   move_cursor(29, 35);
   color_console(14, 0);

   printf("%c N i v e a u  5 * 5", 16);
   color_console(7, 0);

   move_cursor(29, 37);
   printf("  N i v e a u  6 * 6");

   move_cursor(29, 39);
   printf("  N i v e a u  7 * 7");

   move_cursor(29, 41);
   printf("  N i v e a u  8 * 8");

   move_cursor(29, 43);
   printf("  R e t o u r  a u  m e n u  p r e c e d a n t");

   move_cursor(29, 35);
   do{
       touche_tapee=getch();
       position_courante=cursor_y();
       if(touche_tapee==13)
       {
           return position_courante;
       }
       else
       {
           switch(position_courante)
           {
               case 35 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 35);
                           color_console(7, 0);
                           printf("  N i v e a u  5 * 5");
                           move_cursor(29, 37);
                           color_console(14, 0);
                           printf("%c N i v e a u  6 * 6", 16);
                           color_console(7, 0);
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 35);
                           color_console(7, 0);
                           printf("  N i v e a u  5 * 5");
                           move_cursor(29, 43);
                           color_console(14, 0);
                           printf("%c R e t o u r  a u  m e n u  p r e c e d a n t", 16);
                           color_console(7, 0);
                       }
                   }
                   break;
               }
               case 37 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 37);
                           color_console(7, 0);
                           printf("  N i v e a u  6 * 6");
                           move_cursor(29, 39);
                           color_console(14, 0);
                           printf("%c N i v e a u  7 * 7", 16);
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 37);
                           color_console(7, 0);
                           printf("  N i v e a u  6 * 6");
                           move_cursor(29, 35);
                           color_console(14, 0);
                           printf("%c N i v e a u  5 * 5", 16);
                       }
                   }
                   break;
               }
               case 39 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 39);
                           color_console(7, 0);
                           printf("  N i v e a u  7 * 7");
                           move_cursor(29, 41);
                           color_console(14, 0);
                           printf("%c N i v e a u  8 * 8", 16);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 39);
                           color_console(7, 0);
                           printf("  N i v e a u  7 * 7");
                           move_cursor(29, 37);
                           color_console(14, 0);
                           printf("%c N i v e a u  6 * 6", 16);
                       }
                   }
                   break;
               }
               case 41 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 41);
                           color_console(7, 0);
                           printf("  N i v e a u  8 * 8");
                           move_cursor(29, 43);
                           color_console(14, 0);
                           printf("%c R e t o u r  a u  m e n u  p r e c e d a n t", 16);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 41);
                           color_console(7, 0);
                           printf("  N i v e a u  8 * 8");
                           move_cursor(29, 39);
                           color_console(14, 0);
                           printf("%c N i v e a u  7 * 7", 16);
                       }
                   }
                   break;
               }
               case 43 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(29, 43);
                           color_console(7, 0);
                           printf("  R e t o u r  a u  m e n u  p r e c e d a n t");
                           move_cursor(29, 35);
                           color_console(14, 0);
                           printf("%c N i v e a u  5 * 5", 16);
                           break;
                       }
                       case 72 :
                       {
                           move_cursor(29, 43);
                           color_console(7, 0);
                           printf("  R e t o u r  a u  m e n u  p r e c e d a n t");
                           move_cursor(29, 41);
                           color_console(14, 0);
                           printf("%c N i v e a u  8 * 8", 16);
                       }
                   }
                   break;
               }

           }
       }
   }while(1);

}

int menu_entrain_de_jouer()
{
    char touche_tapee=0, position_courante=0;

   move_cursor(25, 35);
   color_console(14, 0);

   printf("%c S a i s i r  u n e  c a s e", 16);
   color_console(7, 0);

   move_cursor(25, 37);
   printf("  R e m p l i r  u n e  c a s e  (A u t o m a t i c)");

   move_cursor(25, 39);
   printf("  V e r i f i e r  l e s  c a s e s  r e m p l i e s");

   move_cursor(25, 41);
   printf("  C o r r i g e r  l a  g r i l l e");

   move_cursor(25, 43);
   printf("  S a u v e g a r d e r  l a  g r i l l e");


   move_cursor(25, 45);
   printf("  R e t o u r  a u  m e n u  N I V E A U");

   move_cursor(25, 35);
   do{
       touche_tapee=getch();
       position_courante=cursor_y();
       if(touche_tapee==13)
       {
           return position_courante;
       }
       else
       {
           switch(position_courante)
           {
               case 35 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(25, 35);
                           color_console(7, 0);
                           printf("  S a i s i r  u n e  c a s e");
                           move_cursor(25, 37);
                           color_console(14, 0);
                           printf("%c R e m p l i r  u n e  c a s e  (A u t o m a t i c)", 16);
                           color_console(7, 0);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(25, 35);
                           color_console(7, 0);
                           printf("  S a i s i r  u n e  c a s e");
                           move_cursor(25, 45);
                           color_console(14, 0);
                           printf("%c R e t o u r  a u  m e n u  N I V E A U", 16);
                           color_console(7, 0);

                       }
                   }
                   break;
               }

               case 37 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(25, 37);
                           color_console(7, 0);
                           printf("  R e m p l i r  u n e  c a s e  (A u t o m a t i c)");
                           move_cursor(25, 39);
                           color_console(14, 0);
                           printf("%c V e r i f i e r  l e s  c a s e s  r e m p l i e s", 16);
                           color_console(7, 0);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(25, 37);
                           color_console(7, 0);
                           printf("  R e m p l i r  u n e  c a s e  (A u t o m a t i c)");
                           move_cursor(25, 35);
                           color_console(14, 0);
                           printf("%c S a i s i r  u n e  c a s e", 16);
                           color_console(7, 0);

                       }
                   }
                   break;
               }

               case 39 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(25, 39);
                           color_console(7, 0);
                           printf("  V e r i f i e r  l e s  c a s e s  r e m p l i e s");
                           move_cursor(25, 41);
                           color_console(14, 0);
                           printf("%c C o r r i g e r  l a  g r i l l e", 16);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(25, 39);
                           color_console(7, 0);
                           printf("  V e r i f i e r  l e s  c a s e s  r e m p l i e s");
                           move_cursor(25, 37);
                           color_console(14, 0);
                           printf("%c R e m p l i r  u n e  c a s e  (A u t o m a t i c)", 16);

                       }
                   }
                   break;
               }
               case 41 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(25, 41);
                           color_console(7, 0);
                           printf("  C o r r i g e r  l a  g r i l l e");
                           move_cursor(25, 43);
                           color_console(14, 0);
                           printf("%c S a u v e g a r d e r  l a  g r i l l e", 16);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(25, 41);
                           color_console(7, 0);
                           printf("  C o r r i g e r  l a  g r i l l e");
                           move_cursor(25, 39);
                           color_console(14, 0);
                           printf("%c V e r i f i e r  l e s  c a s e s  r e m p l i e s", 16);

                       }
                   }
                   break;
               }
               case 43 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(25, 43);
                           color_console(7, 0);
                           printf("  S a u v e g a r d e r  l a  g r i l l e");
                           move_cursor(25, 45);
                           color_console(14, 0);
                           printf("%c R e t o u r  a u  m e n u  N I V E A U", 16);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(25, 43);
                           color_console(7, 0);
                           printf("  S a u v e g a r d e r  l a  g r i l l e");
                           move_cursor(25, 41);
                           color_console(14, 0);
                           printf("%c C o r r i g e r  l a  g r i l l e", 16);

                       }
                   }
                   break;
               }
               case 45 :
               {
                   switch(touche_tapee)
                   {
                       case 80 :
                       {
                           move_cursor(25, 45);
                           color_console(7, 0);
                           printf("  R e t o u r  a u  m e n u  N I V E A U");
                           move_cursor(25, 35);
                           color_console(14, 0);
                           printf("%c S a i s i r  u n e  c a s e", 16);

                           break;
                       }
                       case 72 :
                       {
                           move_cursor(25, 45);
                           color_console(7, 0);
                           printf("  R e t o u r  a u  m e n u  N I V E A U");
                           move_cursor(25, 43);
                           color_console(14, 0);
                           printf("%c S a u v e g a r d e r  l a  g r i l l e", 16);

                       }
                   }
                   break;
               }

           }
       }
   }while(1);

}


float implementer_menu_entrain_de_jouer(int *rubrique,int niveau,grille tab[9][9])
{
    int pos_y,n,nb_remplissage=0,nb_solution=0,nb_verification=0,test_complet=0;
    float score=0;
    *rubrique=menu_entrain_de_jouer();
    if(*rubrique==45)
    {
        system("cls");
    }
    while(*rubrique!=45)
    {
        switch(*rubrique)
            {
                case 35 ://saisir une case
                {
                    system("cls");
                    afficher_grille(tab,0,niveau);
                    jouer(tab,niveau);
                    break;
                }

                case 37 ://remplir case auto
                {
                    nb_remplissage++;
                    system("cls");
                    afficher_grille(tab,0,niveau);
                    remplir_atutomatic(tab,niveau);
                    break;
                }


                case 39://verification des cases remplies
                {
                    system("cls");
                    move_cursor(10,20);
                    color_console(12,0);
                    printf("Cette verification ne concerne que les sommes! ");
                    move_cursor(8,22);
                    printf("Elle ne verifie pas la combinaison unique de la grille!");
                    getch();
                    nb_verification++;
                    system("cls");
                    afficher_grille(tab,0,niveau);
                    char texto[]="VERIFICATION DES LIGNES EN COURS...";
                    animer_description(texto,10,33,15,12);
                    pos_y=verification_cases_saisies_lignes(tab,niveau);
                    if(pos_y!=41)
                    {
                        char texto[]="VERIFICATION DES COLONNES EN COURS...";
                        animer_description(texto,10,pos_y,15,12);
                        pos_y+=2;
                        verification_cases_saisies_colonnes(tab,niveau,pos_y);
                    }
                    animer_clique_terminer();
                    color_console(0,0);
                    getch();
                    break;
                }

                case 41://corriger la grille
                {

                    system("cls");
                    test_complet=verif_remplissage_complet_grille(tab,niveau);
                    if(test_complet==0)
                    {
                        char y_n[1];
                        color_console(12,0);
                        char texto[]="Il reste des cases non remplies.";
                        animer_description(texto,10,33,15,12);
                        system("cls");
                        move_cursor(10,35);
                        color_console(12,0);
                        printf("voulez vous afficher la solution de la grille(o/n)?");
                        move_cursor(10,37);
                        color_console(15,0);
                        scanf("%s",y_n);
                        if(strcmp(y_n,"o")==0)
                        {
                            nb_solution++;
                            system("cls");
                            move_cursor(28,5);
                        color_console(15,0);
                        printf("LA SOLUTION DE LA GRILLE");
                        afficher_grille(tab,1,niveau);
                        color_console(0,0);
                        }
                        if(strcmp(y_n,"o")!=0)
                        {
                             move_cursor(0,5);
                        color_console(15,0);
                        printf("TANT MIEUX! CONTINUEZ A JOUER ET RESLOVEZ LA GRILLE VOUS-MEMES. BON COURAGE :-) ");
                        }

                    }
                    if(test_complet==1)
                    {
                    n=corriger(tab,niveau);
                    getch();
                    system("cls");
                    if(n==0)
                    {
                        color_console(12,0);
                        afficher_texte_fichier("./fichiers_application/champion.txt");
                        char texto[]="FELICITATION, LA GRILLE EST CORRECTE";
                        animer_description(texto,10,33,15,12);
                    }
                    if(n!=0)
                    {
                        char y_n[1];
                        char texto[]="LA GRILLE EST INCORRECTE";
                        animer_description(texto,10,33,15,12);
                        move_cursor(10,35);
                        color_console(12,0);
                        printf("voulez vous afficher la solution de la grille(o/n)?");
                        move_cursor(10,37);
                        color_console(15,0);
                        scanf("%s",y_n);
                        if(strcmp(y_n,"o")==0)
                        {
                            nb_solution++;
                            system("cls");
                            move_cursor(28,5);
                        color_console(15,0);
                        printf("LA SOLUTION DE LA GRILLE");
                        afficher_grille(tab,1,niveau);
                        color_console(0,0);
                        }
                        if(strcmp(y_n,"o")!=0)
                        {
                             move_cursor(0,5);
                        color_console(15,0);
                        printf("TANT MIEUX! CONTINUEZ A JOUER ET RESLOVEZ LA GRILLE VOUS-MEMES. BON COURAGE :-) ");
                        }
                    }
                    }
                    animer_clique_terminer();
                    getch();
                    break;
                }


                case 43://sauvegarder la grille
                {
                    system("cls");
                    sauvegarder(niveau,tab);
                    break;
                }

                default:
                {
                    getch();
                    break;
                }
            }
        system("cls");
        afficher_grille(tab,0,niveau);
        *rubrique=menu_entrain_de_jouer();
        if(*rubrique==45)
        {
                system("cls");
        }
    }
    move_cursor(10,3);
        color_console(14,0);
    printf("VERIFICATION EN COURS AVANT DE QUITTER");
    n=corriger(tab,niveau);
   if (n==0)
    {
                    score =((float) niveau/(nb_solution+1))  -  ((0.05*nb_verification) + (0.2*nb_remplissage)) ;
    }
    return score;

}


void implementer_menu_niveau(int *rubrique,grille tab[9][9],utilisateur u)
{
    float score=0;
    char quitter_ou_non[1];
    system("cls");//efface l'ecran
    afficher_avatar(u);
    afficher_titre_kakuro();
    *rubrique=menu_niveau();
    if(*rubrique==43)
    {
        system("cls");
    }
    while(*rubrique!=43)
    {
        switch(*rubrique)
            {
                case 35 ://menu 5*5
                {
                    int niveau;
                    niveau=5;
                    system("cls");//efface l'ecran
                    char chemin[]="./grilles/5";
                    char chemin_definitif[]="./grilles/5/";
                    char f[25]={'\0'};
                    hasard_nom_fichier(chemin,f);
                    strcat(chemin_definitif,f);
                    charger_grille(chemin_definitif,tab,niveau);

                    do
                    {
                         afficher_grille(tab,0,niveau);
                    score=implementer_menu_entrain_de_jouer(rubrique,niveau,tab);
                    system("cls");
                    move_cursor(20, 18);
                    color_console(14, 0);
                    printf("!Vous allez fermer votre grille de jeu!");
                    move_cursor(17, 25);
                    color_console(12, 0);
                    printf("veuillez sauvegarder votre grille avant de quitter.");
                    move_cursor(20, 27);
                    color_console(15, 0);
                    printf("Etes vous sur de vouloir quitter ?(o/n).");
                    change_cursor(100, 1);
                    move_cursor(38, 29);
                    scanf("%s",quitter_ou_non);
                    system("cls");

                    }
                    while(strcmp(quitter_ou_non,"o")!=0);
                    modifier_contenu_fichier_utilisateur_score(u,score);

                    break;
                }

                case 37://menu 6 * 6
                {
                    int niveau;
                    niveau=6;
                    system("cls");//efface l'ecran
                     char chemin[]="./grilles/6";
                    char chemin_definitif[]="./grilles/6/";
                    char f[25]={'\0'};
                    hasard_nom_fichier(chemin,f);
                    strcat(chemin_definitif,f);
                    charger_grille(chemin_definitif,tab,niveau);
                     do
                    {
                         afficher_grille(tab,0,niveau);
                    score=implementer_menu_entrain_de_jouer(rubrique,niveau,tab);
                    system("cls");
                    move_cursor(20, 18);
                    color_console(14, 0);
                    printf("!Vous allez fermer votre grille de jeu!");
                    move_cursor(17, 25);
                    color_console(12, 0);
                    printf("veuillez sauvegarder votre grille avant de quitter.");
                    move_cursor(20, 27);
                    color_console(15, 0);
                    printf("Etes vous sur de vouloir quitter ?(o/n).");
                    change_cursor(100, 1);
                    move_cursor(38, 29);
                    scanf("%s",quitter_ou_non);
                    system("cls");
                    }
                    while(strcmp(quitter_ou_non,"o")!=0);
                    modifier_contenu_fichier_utilisateur_score(u,score);
                    break;
                }

                case 39://menu 7 * 7
                {
                        int niveau;
                    niveau=7;
                     system("cls");//efface l'ecran
                      char chemin[]="./grilles/7";
                    char chemin_definitif[]="./grilles/7/";
                    char f[25]={'\0'};
                    hasard_nom_fichier(chemin,f);
                    strcat(chemin_definitif,f);
                        charger_grille(chemin_definitif,tab,niveau);
                     do
                    {
                         afficher_grille(tab,0,niveau);
                    score=implementer_menu_entrain_de_jouer(rubrique,niveau,tab);
                    system("cls");
                    move_cursor(20, 18);
                    color_console(14, 0);
                    printf("!Vous allez fermer votre grille de jeu!");
                    move_cursor(17, 25);
                    color_console(12, 0);
                    printf("veuillez sauvegarder votre grille avant de quitter.");
                    move_cursor(20, 27);
                    color_console(15, 0);
                    printf("Etes vous sur de vouloir quitter ?(o/n).");
                    change_cursor(100, 1);
                    move_cursor(38, 29);
                    scanf("%s",quitter_ou_non);
                    system("cls");
                    }
                    while(strcmp(quitter_ou_non,"o")!=0);
                    modifier_contenu_fichier_utilisateur_score(u,score);
                    break;
                }

                case 41://menu 8 * 8
                {
                        int niveau;
                    niveau=8;
                     system("cls");//efface l'ecran
                      char chemin[]="./grilles/8";
                    char chemin_definitif[]="./grilles/8/";
                    char f[25]={'\0'};
                    hasard_nom_fichier(chemin,f);
                    strcat(chemin_definitif,f);
                        charger_grille(chemin_definitif,tab,niveau);
                     do
                    {
                         afficher_grille(tab,0,niveau);
                    score=implementer_menu_entrain_de_jouer(rubrique,niveau,tab);
                    system("cls");
                    move_cursor(20, 18);
                    color_console(14, 0);
                    printf("!Vous allez fermer votre grille de jeu!");
                    move_cursor(17, 25);
                    color_console(12, 0);
                    printf("veuillez sauvegarder votre grille avant de quitter.");
                    move_cursor(20, 27);
                    color_console(15, 0);
                    printf("Etes vous sur de vouloir quitter ?(o/n).");
                    change_cursor(100, 1);
                    move_cursor(38, 29);
                    scanf("%s",quitter_ou_non);
                    system("cls");
                    }
                    while(strcmp(quitter_ou_non,"o")!=0);
                    modifier_contenu_fichier_utilisateur_score(u,score);
                    break;
                }
                default:
                {
                    getch();
                    break;
                }
            }
        system("cls");
         afficher_avatar(u);
        afficher_titre_kakuro();
        *rubrique=menu_niveau();
        if(*rubrique==43)
        {
            system("cls");
        }
    }
}

void implementer_menu_jouer(int *test_inscription,int *rubrique,utilisateur *u,grille tab[9][9],int *test_acces, int n_encours_acces)
{
    float score=0;
    system("cls");
    if(*test_inscription==0)
    {
       *test_inscription=verification_joueur_inscrit(u);
       *test_acces=0;
    }
    if(*test_inscription==1)
    {
        if((*test_inscription==1)&&(n_encours_acces==1))
        {
                        modifier_contenu_fichier_utilisateur(*u);
        }
        *test_acces=1;
        system("cls");
        move_cursor(20, 25);
        color_console(14, 0);
        printf("Acces avec le compte de  : %s !!! ",(*u).pseudo);
        color_console(12, 0);
        move_cursor(15, 28);
        printf("NB : si vous voulez changez de joueur!!!");
        move_cursor(15, 30);
        printf("il faut quitter le jeu definitivement et le re-executer.");
        move_cursor(25,33);
        printf("Merci!");
        getch();
        system("cls");//efface l'ecran
        afficher_avatar(*u);
        afficher_titre_kakuro();
        *rubrique=menu_jouer();
        if(*rubrique==39) system("cls");
                while(*rubrique!=39)
                    {
                        switch(*rubrique)
                        {
                            case 35 :/*menu niveau*/
                                {
                                    implementer_menu_niveau(rubrique,tab,*u);
                                    break;
                                }
                            case 37:/*charger partie*/
                                {
                                    system("cls");
                                    FILE *f;
                                    char nom_f[20];
                                    move_cursor(10,20);
                                    color_console(12,0);
                                    printf("Entrez le nom du fichier a charger?");
                                    move_cursor(20,25);
                                    color_console(15,0);
                                    scanf("%s",nom_f);
                                    strcat(nom_f,".txt");
                                    char chemin[]="./sauvegarde/";
                                    strcat(chemin,nom_f);
                                    f=fopen(chemin,"r");
                                    if(f!=NULL)
                                    {
                                        fclose(f);
                                        int niveau;
                                        system("cls");
                                        move_cursor(10,20);
                                        color_console(12,0);
                                        char texto[]="Chargement avec succes. :) ";
                                        niveau=recuperer_niveau(chemin);
                                        animer_description(texto,10,20,15,12);
                                        move_cursor(20,27);
                                        color_console(15,0);
                                        system("cls");
                                        charger_grille(chemin,tab,niveau);
                                        char quitter_ou_non[1];
                                        do
                                    {

                                        afficher_grille(tab,0,niveau);
                                        score=implementer_menu_entrain_de_jouer(rubrique,niveau,tab);
                                        system("cls");
                                        move_cursor(20, 18);
                                        color_console(14, 0);
                                        printf("!Vous allez fermer votre grille de jeu!");
                                        move_cursor(17, 25);
                                        color_console(12, 0);
                                        printf("veuillez sauvegarder votre grille avant de quitter.");
                                        move_cursor(20, 27);
                                        color_console(15, 0);
                                        printf("Etes vous sur de vouloir quitter ?(o/n).");
                                        change_cursor(100, 1);
                                        move_cursor(38, 29);
                                        scanf("%s",quitter_ou_non);
                                        system("cls");
                                    }
                                        while(strcmp(quitter_ou_non,"o")!=0);
                                        modifier_contenu_fichier_utilisateur_score(*u,score);
                                }
                                    if(f==NULL)
                                    {
                                        system("cls");
                                        move_cursor(10,20);
                                        color_console(12,0);
                                        char texto[]="Chargement Impossible, fichier inexistant . :-( ";
                                        animer_description(texto,10,20,15,12);
                                    }
                                    break;
                                }
                            default:
                                {
                                    getch();
                                    break;
                                }
                        }
                     system("cls");
                     afficher_avatar(*u);
                     afficher_titre_kakuro();
                     *rubrique=menu_jouer();
                     if(*rubrique==39)
                       {
                            system("cls");
                       }
                    }
    }
}

